﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using S4Store.Persistent;
using S4Store.Domain;
using LX.Core.Query;
using S4Store.Service.Valid.StoreValid;

namespace S4Store.Service
{
    public class StoreService : BaseService
    {
        public S4Store.Service.Valid.StoreValid.Add StoreValidAdd { get; set; }
        public S4Store.Service.Valid.StoreValid.Modify StoreValidModify { get; set; }
        public S4Store.Service.Valid.StoreValid.Delete StoreValidDelete { get; set; }

        public IQueryable<Store> GetQuery()
        {
            return this.GetQuery<Store>();
        }

        public void AddS4Store(Store store)
        {
            this.Valid(store, StoreValidAdd);
            this.GetSet<Store>().Add(store);
        }


        public void ModifyS4Store(Store store)
        {
            Store oldstore = GetQuery().First(t => t.Id == store.Id);
            oldstore.Address = store.Address;
            oldstore.Comment = store.Comment;
            oldstore.Contact = store.Contact;
            oldstore.Name = store.Name;
            oldstore.Tel = store.Tel;
            oldstore.Code = store.Code;
            oldstore.PinPaiId = store.PinPaiId;
            this.Valid(oldstore, StoreValidModify);
        }

        public void DeleteS4Store(int storeid)
        {
            Store store = GetQuery().First(t => t.Id == storeid);
            if (store == null) return;
            this.Valid(store, StoreValidDelete);
            this.GetSet<Store>().Remove(store);
        }
        

    }
}
